前因

前端项目是一个 用 React 做的单页面应用。

在访问该页面时呢,会先访问 Nginx,Nginx 再代理转发到一个 Express 进程中。

这折腾的...

于是直接修改 Nginx 配置文件为

server {
  listen 80;
  server_name example.com;
  root /var/www/example;

  location / {
    rewrite .* /index.html break;
  }
}

直接从 Nginx 层代理转发网页回去

问题

上线后,发现,不论在桌面版,移动版 Safari 中,网页汉字都显示为乱码。

解决

既然是改了 Nginx 的配置后出现的问题,理所当然的就怀疑到了 Nginx 头上,

在比对 Express 和 Nginx 返回 html 页面时的 response 后,发现 Ngnix 缺少了 charset=utf-8。

于是修改 Nginx 配置,如下

server {
  listen 80;
  server_name example.com;
  root /var/www/example;

  location / {
    charset utf-8;
    rewrite .* /index.html break;
  }
}

顺利解决。


huhuanming
1.1k 声望16 粉丝

[链接]